<template>
    <div class="i-table-no-border">
        <div>
            <table-btns :tableTopOperateData="listData.tableTopOperate"
                        :tableTopBatchOperate="listData.tableTopBatchOperate"
                        :selectedData="selectedData"
                        :requestApi="listData.requestApi"
                        :basePath="basePath"
                        @exportData="exportData"
                        @actionsChange="getData">
            </table-btns>
        </div>
        <!-- 表格内容 start  -->
        <Table ref="table"
               :columns="columns"
               :data="tableDataList"
               :loading="loading"
               class="ivu-mt"
               stripe
               @on-filter-change="handleFilterChange"
               @on-select="handleSelect"
               @on-select-cancel="handleSelectCancel"
               @on-select-all="handleSelectAll"
               @on-select-all-cancel="handleSelectAllCancel">
            <template slot-scope="{ row }"
                      slot="issueState">
                <span v-if="row.issueState==1">发布</span>
                <span v-if="row.issueState==2">未发布</span>
            </template>
            <template slot-scope="{ row }"
                      slot="payType">
                <span v-if="row.payState=='1'">微信</span>
                <span v-if="row.payState=='2'">支付宝</span>
                <span v-if="row.payState=='3'">银联</span>
            </template>
            <template slot-scope="{ row }"
                      slot="distributorUuid">
                <span v-if="row.distributorUuid">已分销</span>
                <span v-else>未分销</span>
            </template>
            <template slot-scope="{ row, index }"
                      slot="action">
                <table-actions :requestApi="listData.requestApi"
                               :basePath="basePath"
                               :rowData="row"
                               :indexData="index"
                               @actionsChange="getData"></table-actions>
            </template>
        </Table>
        <!-- 表格内容 end  -->
        <!-- 分页 start  -->
        <div class="ivu-mt ivu-text-center">
            <Page :total="totalNum"
                  show-total
                  show-sizer
                  :current.sync="nowPage"
                  @on-change="getData"
                  @on-page-size-change="handleChangePage"/>
        </div>
        <!-- 分页 end  -->
    </div>
</template>
<script>

    import { mapState, mapMutations } from 'vuex';
    import util from '@/libs/util';
    import { ApiRequest } from '@api/basePage';
    import tables from '@/mixins/dynamictable'; // 混入通用代码

    import qwInput from '@/components/common/formItem/qwInput'; // 表单input组件
    import qwSelect from '@/components/common/formItem/qwSelect'; // 表单select组件
    import qwDatePicker from '@/components/common/formItem/qwDatePicker'; // 表单日期组件
    import qwSelectTree from '@/components/common/formItem/qwSelectTree'; // 表单下拉树组件

    import tableActions from './tableActions'; // 表格操作项
    import tableBtns from './tableBtns'; // 表格内部操作按钮

    export default {
        mixins: [
            tables
        ],
        props: {
            dynamicData: {
                type: Object
            },
            pagePath: {
                type: String
            },
            orderState: {
                type: String,
                default: ''
            }
        },
        computed: {
            ...mapState('admin/baseList', [
                'listData',
                'searchFormData',
                'searchFormDataQ'
            ])
        },
        watch: {
            orderState (n, o) {
                this.getData();
            }
        },
        components: {
            qwInput,
            qwSelect,
            qwDatePicker,
            qwSelectTree,
            tableActions,
            tableBtns
        },
        data () {
            return {
                util: util,
                basePath: this.dynamicData.basePath // 拼接基础路径
            }
        },
        created () {

        },
        methods: {
            ...mapMutations('admin/baseList', [
                'setTableRowData'
            ]),
            // 获取表格的数据
            getData () {
                let searchParam = [];

                Object.keys(this.searchFormData).forEach((key) => {
                    searchParam.push({ name: key, value: this.searchFormData[key] });
                });
                Object.keys(this.searchFormDataQ).forEach((key) => {
                    searchParam.push({ name: key, value: this.searchFormDataQ[key] });
                });

                let data = {
                    nowPage: this.nowPage,
                    pageShow: this.pageShow,
                    searchParam: JSON.stringify(searchParam),
                    sortName: '',
                    sortType: ''
                };

                this.loading = true;
                // 开始请求列表
                ApiRequest(this.listData.requestApi.getTableList.url, this.listData.requestApi.getTableList.type, data).then(res => {
                    let rData = res;
                    if (rData.retData !== '') {
                        rData.retData = rData.retData
                    }
                    let tableDataList = rData.retData.results;
                    tableDataList.forEach(item => {
                        let actions = [];
                        if (item.issueState === '1') {
                            actions.push({
                                name: 'View',
                                label: '详情',
                                handleType: 'link'
                            });
                            var endTime = new Date(item.endTime).getTime();
                            var nowTime = Date.now();
                            if (endTime > nowTime) {
                                actions.push({
                                    name: 'View',
                                    label: '取消发布',
                                    handleType: 'link'
                                })
                            }
                        } else {
                            actions.push({
                                name: 'Edit',
                                label: '编辑',
                                handleType: 'link'
                            })
                            actions.push({
                                name: 'View',
                                label: '发布',
                                handleType: 'link'
                            })
                        }
                        item.actions = actions;
                    });
                    // 增加表格操作项
                    this.tableDataList = rData.retData.results;
                    this.totalNum = rData.retData.totalNum;
                    this.loading = false;
                })
            }
        }
    }
</script>
<style lang="less" scoped>
    .i-table-no-border .ivu-table-header th {
        background: #f8f8f8;
    }
</style>
